package com.liik.game.mvc.tiled.object;

import com.liik.game.mvc.tiled.TiledGameModel;
import com.liik.game.mvc.tiled.TiledGameModel.Environment;
import com.liik.game.util.Vector;

public abstract class Entity extends Vector {
	
	public final float boundingRadius;
	public final int collisionHandlerPriority;

	public Entity(float boundingRadius, int collisionHandlerPriority) {
		this.boundingRadius = boundingRadius;
		this.collisionHandlerPriority = collisionHandlerPriority;
	}

	public abstract boolean isActive();
	public abstract void update(TiledGameModel gameModel, long currentTimeMillis);
	public abstract void handleCollision(Entity otherEntity, TiledGameModel gameModel, long currentTimeMillis);
	public abstract void handleEnvironment(Environment environment, TiledGameModel gameModel, long currentTimeMillis);
	public abstract void handleDefaultAction(TiledGameModel gameModel, long currentTimeMillis);
}
